Linux下制作bin文件,并对其进行截取、合并、修改 您所在的位置:网站首页 linux 将多个文件合并 Linux下制作bin文件,并对其进行截取、合并、修改

Linux下制作bin文件,并对其进行截取、合并、修改

2023-11-01 03:37| 来源: 网络整理| 查看: 265

在某些情况下,可能会用到全为某个值的 bin 文件,可使用 dd 命令配合 /dev/zero 这个特殊的文件设备,来生成全为 0x00 的 bin 文件。然后再使用 tr 命令,替换0x00 为 特定的值,即可生成全是某个值的bin文件。

命令说明:

Linux dd 命令Linux tr命令 1.生成全是0的bin文件

制作全是0的bin文件,文件大小为(bs * count):

# 生成512byte全为0的bin文件: dd if=/dev/zero of=all_0x00.bin bs=1 count=512 # 生成5K全为0的bin文件: dd if=/dev/zero of=all_0x00.bin bs=1K count=5 # 生成5M全为0的bin文件: dd if=/dev/zero of=all_0x00.bin bs=1M count=5 2.生成全是FF的bin文件

使用 tr 命令,替换0x00 为 0xFF,命令如下所示:

#生成512byte的全FF的bin文件 dd if=/dev/zero bs=1 count=512 | tr "\000" "\377" > all_0xff.bin #生成5K的全FF的bin文件 dd if=/dev/zero bs=1K count=5 | tr "\000" "\377" > all_0xff.bin #生成5M的全FF的bin文件 dd if=/dev/zero bs=1M count=5 | tr "\000" "\377" > all_0xff.bin

其中 \000,\377 为八进制数,即分别为0x00,0xFF。这里使用tr命令将0x00替换为0xff。

3.合并bin文件 cat all_0x00.bin all_0xff.bin > all.bin 4.截取bin文件

从bin文件的(bs * skip)位置,截取(bs * count)长度的bin文件:

# 从输入文件头部偏移(1 * 0)开始,截取(1 * 512)成单独文件 dd if=all.bin bs=1 count=512 skip=0 of=0x00_0xff.bin # 从输入文件头部偏移(1 * 32)byte开始,截取(1 * 512)成单独文件 dd if=all.bin bs=1 count=512 skip=32 of=0x00_0xff.bin # 从输入文件头部偏移(1K * 2)byte开始,截取(1K * 512)成单独文件 dd if=all.bin bs=1K count=512 skip=2 of=0x00_0xff.bin # 从输入文件头部偏移(1M * 2)byte开始,截取(1M * 3)成单独文件 dd if=all.bin bs=1M count=3 skip=2 of=0x00_0xff.bin 5.向bin文件的指定位置写入内容

向bin文件的(bs * seek)位置写入指定的十六进制数,文件大小保持不变:

# 将0x11 0x22写入bin文件的开头,bin文件大小不变 echo -e -n "\x11\x22" | dd bs=1 seek=0 conv=notrunc of=all_0xff.bin # 将0x33 0x44写入bin文件的(1 * 256 = 256)位置,bin文件大小不变 echo -e -n "\x33\x44" | dd bs=1 seek=256 conv=notrunc of=all_0xff.bin # 将0x55 0x66写入bin文件的(1K * 1 = 0x400)位置,bin文件大小不变 echo -e -n "\x55\x66" | dd bs=1K seek=1 conv=notrunc of=all_0xff.bin 6.参考博文

命令生成自定义 bin 文件



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有